Many enterprises now use cloud-based computing platforms that allow services and data to be accessed over the Internet (or via other networks). Infrastructure providers of these cloud-based computing platforms offer network-based processing systems that often support multiple enterprises (or tenants) using common computer hardware and data storage. This “cloud” computing model allows applications to be provided over a platform “as a service” supplied by the infrastructure provider.
Multi-tenant cloud-based architectures have been developed to improve collaboration, integration, and community-based cooperation between customer tenants without compromising data security. Generally speaking, multi-tenancy refers to a system where a single hardware and software platform simultaneously supports multiple customers or tenants from a common data storage element (also referred to as a “multi-tenant data store”). The multi-tenant design provides a number of advantages over conventional server virtualization systems. First, the multi-tenant platform operator can often make improvements to the platform based upon collective information from the entire tenant community. Additionally, because all users in the multi-tenant environment execute applications within a common processing space, it is relatively easy to grant or deny access to specific sets of data for any user within the multi-tenant platform, thereby improving collaboration and integration between applications and the data managed by the various applications. The multi-tenant architecture therefore allows convenient and cost effective sharing of similar application feature software between multiple sets of users.
Cloud-based applications for a cloud computing environment are typically developed by many different “users” including developers, customers, independent software vendors (ISVs), quality engineers, business units, virtual groups, sub-tenants, scrum teams, etc. An integrated development environment typically includes a collection of tools that can be used to create, debug, and test applications. A cloud-based application must be tested by a variety of different users who belong to different cross-functional teams, business units, sub-tenants, etc. To facilitate this testing a wide variety of test tools and test execution engines have been developed.
Existing test tools simply allow the user to manually select certain tests (e.g., by using a checkbox for a particular test name in a test execution page) they want to execute, or to select all possible tests to be executed. These approaches can be tedious and time-consuming. It would also be desirable to provide users with greater control over which tests are executed during testing that pertain to the interest or ownership area of a sub-tenant.
During testing of an application, “code coverage” is one particular metric that is of interest to users who are conducting tests on the application. For example, a user may be interested in the amount of code covered by certain tests of selective components and/or modules (e.g., which lines of code are covered by a certain tests of selective components and/or modules versus which lines are not). It would also be desirable to provide users with improved tools for computing code coverage and presenting code coverage results that pertain to the interest or ownership area of a sub-tenant.